System and method for controlling fan speed

ABSTRACT

A method and computer program product for determining an internal temperature of a computing device, a power consumption factor for the computing device, and an airflow factor for the computing device. An approximated ambient air temperature is generated based upon the internal temperature, power consumption factor, and the airflow factor. A workload factor is determined for the computing device and a fan speed for the computing device is controlled based at least in part upon the approximated ambient air temperature and the workload factor.

RELATED APPLICATION(S)

This application is a continuation-in-part of U.S. patent applicationSer. No. 12/640,732, filed on 17 Dec. 2009, and entitled “System andMethod for Approximating Ambient Temperature”, the entire contents ofwhich is herein incorporated by reference in its entirety.

This application is related to and hereby incorporates by reference inits entirety the subject matter of U.S. Pat. No. 7,577,767, issued on 18Aug. 2009, and entitled “Data storage system having plural storageprocessors in a single chassis”, which is attached hereto as Appendix A.

This application is related to and hereby incorporates by reference inits entirety the subject matter of U.S. Pat. No. 7,988,063, issued on 2Aug. 2011, and entitled “Method for controlling cooling in a datastorage system”, which is attached hereto as Appendix B.

TECHNICAL FIELD

This disclosure relates to workload monitoring and, more particularly,to CPU workload monitoring.

BACKGROUND

Within data centers, it is often important to monitor the temperature ofthe various devices within the data center so that cooling systems maybe adjusted to compensate for such variations in temperature. Forexample, the workload of the various processors included within the datacenter may be monitored so that the speed of the various fans includedwithin the system may be adjusted to increase efficiency.

SUMMARY OF DISCLOSURE

In one implementation, a computer-implemented method includesdetermining an internal temperature of a computing device, a powerconsumption factor for the computing device, and an airflow factor forthe computing device. An approximated ambient air temperature isgenerated based upon the internal temperature, power consumption factor,and the airflow factor. A workload factor is determined for thecomputing device and a fan speed for the computing device is controlledbased at least in part upon the approximated ambient air temperature andthe workload factor.

One or more of the following features may be included. Determining aninternal temperature may include determining a midplane temperature.Determining an internal temperature may include determining an exhausttemperature. Determining an airflow factor may include monitoring arotational speed of one or more cooling fans. Determining a powerconsumption factor may include determining a total power consumption ofthe computing device. Determining a power consumption factor further mayinclude subtracting, from the total power consumption of the computingdevice, a total power consumption of non-disk drive devices. Generatingan approximated ambient air temperature may include: determining adifferential temperature; and subtracting the differential temperaturefrom the internal temperature to define the approximated ambient airtemperature. Determining a differential temperature may includedetermining the quotient of the power consumption factor and the airflowfactor. Determining a differential temperature further may include:determining a product of the quotient and a first constant and addingthe product to a second constant. At least one of the first and secondconstants may be determined empirically.

In another implementation of this disclosure, a computer program productresides on a computer readable medium and has a plurality ofinstructions stored on it. When executed by a processor, theinstructions cause the processor to perform operations includingdetermining an internal temperature of a computing device, a powerconsumption factor for the computing device, and an airflow factor forthe computing device. An approximated ambient air temperature isgenerated based upon the internal temperature, power consumption factor,and the airflow factor. A workload factor is determined for thecomputing device and a fan speed for the computing device is controlledbased at least in part upon the approximated ambient air temperature andthe workload factor.

One or more of the following features may be included. Determining aninternal temperature may include determining a midplane temperature.Determining an internal temperature may include determining an exhausttemperature. Determining an airflow factor may include monitoring arotational speed of one or more cooling fans. Determining a powerconsumption factor may include determining a total power consumption ofthe computing device. Determining a power consumption factor further mayinclude subtracting, from the total power consumption of the computingdevice, a total power consumption of non-disk drive devices. Generatingan approximated ambient air temperature may include: determining adifferential temperature; and subtracting the differential temperaturefrom the internal temperature to define the approximated ambient airtemperature. Determining a differential temperature may includedetermining the quotient of the power consumption factor and the airflowfactor. Determining a differential temperature further may include:determining a product of the quotient and a first constant and addingthe product to a second constant. At least one of the first and secondconstants may be determined empirically.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features andadvantages will become apparent from the description, the drawings, andthe claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagrammatic view of a fan control process executed in wholeor in part by a device coupled to a distributed computing network;

FIG. 2 is a flowchart of the fan control process of FIG. 1; and

FIG. 3 is a diagrammatic view of a device that executes the fan controlprocess of FIG. 1.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Referring to FIGS. 1-3, there is shown fan control process 10. Fancontrol process 10 may include one or more of computer process 12 anddevice process 14. Accordingly and for the following discussion, the fancontrol process will be described generally as fan control process 10,with the understanding that fan control process 10 may include one ormore of computer process 12 and device process 14.

Computer process 12 may be executed (in whole or in part) by computer 16(e.g., a single server computer, a plurality of server computers, ageneral purpose computer, a laptop computer, or a notebook computer).Device process 14 may be executed (in whole or in part) by embeddeddevice 18. Embedded device 18 may be incorporated into, coupled with, ora portion of computing device 20, examples of which may include but arenot limited to a server, a bridge, a router, a brouter, a switch, agateway, a hub, a protocol convertor, a proxy device, a firewall, anetwork address translator, a multiplexor, a modem, a repeater, astorage module, and a power supply module. Examples of embedded device18 may include but are not limited to a microprocessor and memory, anembedded controller, a single board computer, a programmable logiccontroller, and/or a portion of computing device 20.

As will be discussed below in greater detail, fan control process 10 maydetermine 100 an internal temperature 200 of a computing device (e.g.,computing device 20); determine 102 a power consumption factor 202 (inwatts) of the computing device; and determine 104 an airflow factor 204(in CFM or cubic meters per minute) of the computing device. Fan controlprocess 10 may generate 106 an approximated ambient air temperature 206based upon internal temperature 200, power consumption factor 202, andairflow factor 204. A workload factor 207 may be determined 107 by fancontrol process 10 for the computing device (e.g., computing device 20)and a fan speed for the computing device (e.g., computing device 20) maybe controlled 109 by fan control process 10 based at least in part uponapproximated ambient air temperature 206 and workload factor 207.

Computer 16 may be coupled to network 22 (e.g., the Internet, anintranet, a local area network, a wide area network, and/or anextranet). Computer 16 may execute an operating system, examples ofwhich may include but are not limited to Microsoft Windows Vista™, orRedhat Linux™.

The instruction sets and subroutines of computer process 12 (which maybe grouped to form one or more software modules), which may be stored ona storage device 24 coupled to computer 16, may be executed by one ormore processors (not shown) and one or more memory architectures (notshown) incorporated into computer 16. Storage device 24 may include butis not limited to a hard disk drive, a tape drive, an optical drive, aRAID array, a random access memory (RAM), or a read-only memory (ROM).

The instruction sets and subroutines of device process 14 (which may begrouped to form one or more software modules), which may be stored onstorage device 26 coupled to the computing device (e.g., computingdevice 20), may be executed by one or more processors (not shown) andone or more memory architectures (not shown) incorporated into thecomputing device (e.g., computing device 20). Storage device 26 mayinclude but is not limited to a hard disk drive, a tape drive, anoptical drive, a RAID array, a random access memory (RAM), a read-onlymemory (ROM), or a flash memory device.

While computer 16 is shown hardwired to network 22, this is forillustrative purposes only and is not intended to be a limitation ofthis disclosure, as other configurations are possible and are consideredto be within the scope of this disclosure. For example, computer 16 maybe wirelessly coupled to network 22 via e.g., a wireless communicationchannel (not shown) established between computer 16 and a wirelessaccess point (not shown), which may be directly coupled to network 22.

While computing device 20 is shown hardwired to network 22, this is forillustrative purposes only and is not intended to be a limitation ofthis disclosure, as other configurations are possible and are consideredto be within the scope of this disclosure. For example, computing device20 may be wirelessly coupled to network 22 via e.g., a wirelesscommunication channel (not shown) established between computing device20 and a wireless access point (not shown), which may be directlycoupled to network 22.

The Fan Control Process:

As discussed above, fan control process 10 may determine 100 an internaltemperature 200 of a computing device (e.g., computing device 20);determine 102 a power consumption factor 202 of the computing device(e.g., computing device 20); and determine 104 an airflow factor 204 ofthe computing device (e.g., computing device 20). Fan control process 10may generate 106 approximated ambient air temperature 206 based uponinternal temperature 200, power consumption factor 202, and airflowfactor 204. Fan control process 10 may determine 107 workload factor 207for the computing device (e.g., computing device 20) and a fan speed forthe computing device (e.g., computing device 20) may be controlled 109based at least in part upon approximated ambient air temperature 206 andworkload factor 207.

Approximated ambient air temperature 206 generated by fan controlprocess 10 may be indicative of the air temperature external to butproximate computing device 20 (as symbolized by thermometer 208). Bygenerating approximated ambient air temperature 206 (as opposed todirectly reading ambient air temperature 208), computing device 20 doesnot need to include an external temperature sensor.

The manner in which fan control process 10 determines 100 internaltemperature 200 may vary depending upon the configuration of computingdevice 20. For example, computing devices (such as computing device 20)may include one or more temperature sensors (represented graphically assensors 210, 212, 214). Examples of sensors 210, 212, 214 may includebut are not limited to one or more thermistors.

Sensors 210, 212, 214 may be positioned at various locations withincomputing device 20. For example, assume that computing device 20includes a plurality of storage devices 216, 218, 220, 222 that arecoupled to midplane assembly 224. One or more of temperature sensors210, 212, 214 may be mounted on/positioned proximate midplane assembly224 so that a midplane temperature may be determined 108 by fan controlprocess 10. Further still, one or more of temperature sensors 210, 212,214 may be positioned proximate exhaust fan 226 so that the sensor(s)may sense the temperature of the exhaust airflow so that an exhausttemperature may be determined 110 by fan control process 10.

When determining 104 airflow factor 204, fan control process 10 maymonitor 112 a rotational speed of one or more cooling fans (e.g., supplyfan 228 and/or exhaust fan 226). Specifically and moving forward on thepremise that the volume of air moved per fan rotation is known, airflowfactor 204 (which may be indicative of the total quantity of air movedthrough computing device 20) may be determined 104 provided that therotational speed of the cooling fan(s) is known.

When determining 102 power consumption factor 202, fan control process10 may need to take into account a few factors (e.g., the position ofthe temperature sensor(s) being monitored. For example, assume that thetemperature being monitored is the temperature of the exhaust airflowvia a temperature sensor positioned proximate exhaust fan 226. Since (inthis example) the exhaust airflow passing through exhaust fan 226 isindicative of an homogenized temperature of the inside of computingdevice 20, fan control process 10 may determine 114 a total powerconsumption of computing device 20. The total power consumption ofcomputing device 20 is of interest because exhaust fan 226 is exhaustingall of the air from computing device 20.

Conversely, the calculations may be different if the temperaturesensor(s) were positioned to monitor the temperature within a specificportion of computing device 20. In that case, fan control process 10 mayisolate the energy supplied to the portion of computing device 20proximate the sensor(s) being monitored.

For example, assume that the sensor(s) being monitored are located onmidplane 224 of computing device 20. Accordingly, the temperatureproximate midplane 224 may vary in accordance with the power consumptionof the components/circuits proximate the sensor(s) being monitored.Therefore and for this particular example, fan control process 10 maydetermine 114 a total power consumption of computing device 20 andsubtract 116, from the determined total power consumption of computingdevice 20, a total power consumption for all non-disk drive devices.

Specifically, assume that fan control process 10 determines 114 thatfive hundred watts is being provided by power supply 230. However,assume that two hundred of those five hundred watts is being provided toadditional components 232 included within computing device 20, examplesof which include but are not limited to e.g., storage controllers, linkcontroller cards, etc.). Typically, the power consumptions of certainadditional components 232 (e.g., link controller cards) may be known andconstant. However, the power consumption of other additional components(e.g., storage processors) may vary. Accordingly, for those additionalcomponents that have varying levels of power consumption, additionalmonitoring may need to be performed to determine the actual powerconsumption level of the “varying” additional components. Once the powerconsumption of additional components 232 is determined (via e.g.,applying a constant value and/or monitoring actual consumption), thisamount (e.g., two hundred watts) may be subtracted 116 from thepreviously determined 114 total power consumption of e.g., five hundredwatts. Accordingly and in this particular example, the power consumptionfactor 202 for the midplane portion of computing device 20 (i.e., theportion near the relevant temperature sensor(s) is determined to bethree hundred watts.

Once fan control process 10 determines 100, 102, 104 internaltemperature 200, power consumption factor 202 and airflow factor 204,fan control process 10 may generate 106 approximated ambient airtemperature 206. Generating 106 approximated ambient air temperature 206may include determining 118 a differential temperature and subtracting120 the differential temperature from the internal temperature measuredto define approximated ambient air temperature 206.

When determining 118 a differential temperature, a linear relationshipmay be utilized. For example, such a relationship may be defined asfollows:Y=MX+B

wherein Y is the differential temperature, X is the quotient of powerconsumption factor 202 (in watts) and airflow factor 204 (in CFM orcubic meters per minute). M and B may be constants that may bedetermined empirically and may vary from device to device and inaccordance with the location of the temperature sensors.

Accordingly, when determining 118 a differential temperature, fancontrol process 10 may determine 220 quotient (X) of the powerconsumption factor and the airflow factor; determine 222 a product ofquotient (X) and first constant (M) and add 224 the product to secondconstant (B).

In addition to storage processors, other devices may have varying levelsof power consumption and generate varying levels of heat. For example,disk drives (e.g., storage devices 216, 218, 220, 222) have aconsiderable level of thermal mass and, therefore, may take considerabletime (e.g., thirty minutes) for their temperature to stabilize.Accordingly, when initially started (or after a reset), fan controlprocess 10 may not report approximated ambient air temperature 206 untilafter such stabilization has occurred. Additionally, fan control process10 may be configured so that approximated ambient air temperature 206 isnot reported while e.g., fault conditions are occurring and/or fieldreplaceable units are removed,

When determining 100 the internal temperature, fan control process 10may be configured to average the temperature reading across sensorsand/or across time. For example, fan control process 10 may averagetemperature readings across time periods from thirty seconds to thirtyminutes.

Once fan control process 10 generates 106 the approximated ambient airtemperature 206, approximated ambient air temperature 206 may beretrieved by user 28 via computing process 12. As discussed above,computing process 12 (which may be executed on computer 16) mayinterface with device process 14 (which is executed on embedded device18) via e.g., network 22. Alternatively, approximated ambient airtemperature 206 may be retrieved using computing device 20 if theappropriate interface (not shown) is included within computing device20.

As discussed above, fan control process 10 may determine 107 workloadfactor 207 for the computing device (e.g., computing device 20) and afan speed for the computing device (e.g., computing device 20) may becontrolled 109 (via fan control signal 211) based at least in part uponapproximated ambient air temperature 206 and workload factor 207.

The above-described workload factor 207 may provide informationconcerning the thermal temperature of one or more devices to approximatethe workload currently being experienced by the device being monitored.Accordingly, one or more thermal sensors (e.g., sensor 209) may beplaced upon e.g., the microprocessors included within the computingdevice (e.g., computing device 20) so that the workload beingexperienced by each of these devices may be approximated. For example,if the computing device includes a single microprocessor (not shown), asingle thermal sensor may be used by fan control process 10 to determine107 workload factor 207. However, if multiple microprocessors (notshown) are included within the computing device (e.g., computing device20), multiple thermal sensors may be employed. The signals received fromeach of these thermal sensors may be averaged (using a single averagingcircuit/algorithm; not shown) and/or may be prioritized in accordancewith one or more weighting factors (e.g., the temperature of higherimportance components are more influential on fan control than those oflower importance components).

Once fan control process 10 determines 107 workload factor 207, workloadfactor 207 may be used in combination with approximated ambient airtemperature 206 to control 109 (via fan control signal 211) the speed ofone or more fans (e.g., fan 226, fan 228, microprocessor cooling fans(not shown) and memory system cooling fans (not shown)) included withinthe computing device.

For example, a low approximated ambient air temperature 206 incombination with a low workload factor 207 may result in one or more ofthe fans (e.g., fan 226, fan 228, microprocessor cooling fans (notshown) and memory system cooling fans (not shown)) being set to a lowestfan speed (to provide minimum cooling) via fan control signal 211.Conversely, a high approximated ambient air temperature 206 incombination with a high workload factor 207 may result in one or more ofthe fans (e.g., fan 226, fan 228, microprocessor cooling fans (notshown) and memory system cooling fans (not shown)) being set to ahighest fan speed (to provide maximum cooling) via fan control signal211. Further, various other combinations of approximated ambient airtemperature 206 and workload factor 207 may result in one or more of thefans (e.g., fan 226, fan 228, microprocessor cooling fans (not shown)and memory system cooling fans (not shown)) being set to an intermediatefan speed (to provide an intermediate level of cooling) via fan controlsignal 211.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made. Accordingly, otherimplementations are within the scope of the following claims.

What is claimed is:
 1. A computer-implemented method comprising:determining an internal temperature of a computing device having one ormore non-disk drive devices and one or more disk drive devices, whereindetermining an internal temperature includes determining a midplanetemperature via one or more temperature sensors mounted on a midplaneassembly of the computing device; determining a power consumption factorfor the computing device, wherein determining the power consumptionfactor includes determining a total power consumption of the computingdevice, determining a total power consumption of the one or morenon-disk drive devices of the computing device and within the computingdevice, and further includes subtracting, from the total powerconsumption of the computing device, the total power consumption of theone or more non-disk drive devices, wherein the one or more non-diskdrive devices includes at least one of a storage controller and a linkcontroller card; determining an airflow factor for the computing deviceindicating a total quantity of air moving through the computing device,including monitoring a rotational speed of one or more cooling fans todetermine a volume of air moved per fan rotation; generating anapproximated ambient air temperature based upon the internal temperatureand midplane temperature, power consumption factor, and the airflowfactor, wherein generating an approximated ambient air temperatureincludes determining a differential temperature based upon the powerconsumption factor, and the airflow factor, and subtracting thedifferential temperature from the internal temperature to define theapproximated ambient air temperature; determining a workload factor forthe computing device; and controlling a fan speed for each of an exhaustfan, a supply fan, a microprocessor cooling fan and a memory systemcooling fan associated with the computing device based at least in partupon the approximated ambient air temperature and the workload factor.2. The computer-implemented method of claim 1 wherein determining aninternal temperature includes: determining an exhaust temperature. 3.The computer-implemented method of claim 1 wherein determining thedifferential temperature includes: determining the quotient of the powerconsumption factor and the airflow factor.
 4. The computer-implementedmethod of claim 3 wherein determining the differential temperaturefurther includes: determining a product of the quotient and a firstconstant and adding the product to a second constant.
 5. Thecomputer-implemented method of claim 4 wherein at least one of the firstand second constants is determined empirically.
 6. A computer programproduct residing on a non-transitory computer readable medium having aplurality of instructions stored thereon that, when executed by aprocessor, cause the processor to perform operations comprising:determining an internal temperature of a computing device having one ormore non-disk drive devices and one or more disk drive devices, whereindetermining an internal temperature includes determining a midplanetemperature via one or more temperature sensors mounted on a midplaneassembly of the computing device; determining a power consumption factorfor the computing device, wherein determining the power consumptionfactor includes determining a total power consumption of the computingdevice, determining a total power consumption of the one or morenon-disk drive devices of the computing device and within the computingdevice, and further includes subtracting, from the total powerconsumption of the computing device, the total power consumption of theone or more non-disk drive devices, wherein the one or more non-diskdrive devices includes at least one of a storage controller and a linkcontroller card; determining an airflow factor for the computing deviceindicating a total quantity of air moving through the computing device,including monitoring a rotational speed of one or more cooling fans todetermine a volume of air moved per fan rotation; generating anapproximated ambient air temperature based upon the internal temperatureand midplane temperature, power consumption factor, and the airflowfactor, wherein generating an approximated ambient air temperatureincludes determining a differential temperature based upon the powerconsumption factor, and the airflow factor, and subtracting thedifferential temperature from the internal temperature to define theapproximated ambient air temperature; determining a workload factor forthe computing device; and controlling a fan speed for each of an exhaustfan, a supply fan, a microprocessor cooling fan and a memory systemcooling fan associated with the computing device based at least in partupon the approximated ambient air temperature and the workload factor.7. The computer program product of claim 6 wherein the instructions fordetermining an internal temperature include instructions for:determining an exhaust temperature.
 8. The computer program product ofclaim 6 wherein the instructions for determining the differentialtemperature include instructions for: determining the quotient of thepower consumption factor and the airflow factor.
 9. The computer programproduct of claim 8 wherein the instructions for determining thedifferential temperature further include instructions for: determining aproduct of the quotient and a first constant and adding the product to asecond constant.
 10. The computer program product of claim 9 wherein atleast one of the first and second constants is determined empirically.